Skip to content

feat(gooddata-sdk): [AUTO] Add AI catalog generateDescription, generateTitle, trendingObjects endpoints#1571

Open
yenkins-admin wants to merge 3 commits intomasterfrom
auto/openapi-sync-C012-20260420-r82171
Open

feat(gooddata-sdk): [AUTO] Add AI catalog generateDescription, generateTitle, trendingObjects endpoints#1571
yenkins-admin wants to merge 3 commits intomasterfrom
auto/openapi-sync-C012-20260420-r82171

Conversation

@yenkins-admin
Copy link
Copy Markdown
Contributor

Summary

Added three new AI catalog methods to ComputeService (generate_description, generate_title, get_trending_objects) and added enable_hybrid_search parameter to search_ai. All wrap the already-present generated API client endpoints. Integration tests added for each new method.

Impact: new_feature | Services: gooddata-metadata-client
Tickets: GDAI-1328

Files changed

  • packages/gooddata-sdk/src/gooddata_sdk/compute/service.py
  • packages/gooddata-sdk/tests/compute/test_compute_service.py

Agent decisions

Decisions (3)

placement of new methods — Added generate_description, generate_title, get_trending_objects to ComputeService in compute/service.py

  • Alternatives: Create a new CatalogAiService, Add to CatalogWorkspaceContentService
  • Why: All existing AI methods (search_ai, ai_chat, sync_metadata) live in ComputeService; keeping AI catalog actions together in the same class is consistent with the established pattern.

return types for new methods — Return raw generated API types (GenerateDescriptionResponse, GenerateTitleResponse, TrendingObjectsResult)

  • Alternatives: Create SDK wrapper classes, Return dict
  • Why: Existing AI methods (ai_chat → ChatResult, search_ai → SearchResult) also return raw generated types; no SDK wrapper classes are used for action responses in this service.

enable_hybrid_search parameter position — Inserted enable_hybrid_search between deep_search and limit, alphabetically adjacent to deep_search

  • Alternatives: Append at end
  • Why: Maintains alphabetical ordering of optional boolean flags, consistent with how the existing optional params are ordered.
Assumptions to verify (3)
  • The actions_api.generate_description / generate_title / trending_objects methods are available in the ActionsApi (confirmed in gooddata-api-client/gooddata_api_client/api/actions_api.py)
  • GenerateDescriptionRequest requires object_id and object_type as positional args (confirmed in the generated model)
  • The existing pytest.skip at module level in test_compute_service.py already covers the new tests, so no additional skip is needed
Risks (1)
  • test_generate_description and test_generate_title assume an object with id 'revenue' and type 'Metric' exists in the test workspace loaded from load/ai; if no such object exists the API may return an error response
Layers touched (2)
  • public_api — New methods on ComputeService; no new public exports needed since ComputeService was already exported
    • packages/gooddata-sdk/src/gooddata_sdk/compute/service.py
  • tests — Integration tests for the four new/updated methods
    • packages/gooddata-sdk/tests/compute/test_compute_service.py

Source commits (gdc-nas)

  • ea4a558 Merge pull request #21425 from gooddata/zovi/GDAI-1328-searc-results-grouping
  • 3e5b1e6 Merge pull request #20842 from gooddata/zovi/GDAI-1418-treding-object-analytics
  • 64b778a Merge pull request #20454 from gooddata/zovi/GDAI-1349-hybrid-search
OpenAPI diff
+    "/api/v1/actions/workspaces/{workspaceId}/catalog/generateDescription": {
+      "post": { "operationId": "generateDescription", ... }
+    },
+    "/api/v1/actions/workspaces/{workspaceId}/catalog/generateTitle": {
+      "post": { "operationId": "generateTitle", ... }
+    },
+    "/api/v1/actions/workspaces/{workspaceId}/catalog/trendingObjects": {
+      "post": { "operationId": "trendingObjects", ... }
+    },
+      "SearchRequest": {
+        "properties": {
+          "enableHybridSearch": { "type": "boolean" }
+        }
+      }

Workflow run


Generated by SDK OpenAPI Sync workflow

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 20, 2026

Codecov Report

❌ Patch coverage is 44.44444% with 10 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.62%. Comparing base (c00ca3b) to head (8383bec).
⚠️ Report is 170 commits behind head on master.

Files with missing lines Patch % Lines
...s/gooddata-sdk/src/gooddata_sdk/compute/service.py 44.44% 10 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           master    #1571       +/-   ##
===========================================
+ Coverage    0.00%   78.62%   +78.62%     
===========================================
  Files         158      230       +72     
  Lines       11048    15423     +4375     
===========================================
+ Hits            0    12126    +12126     
+ Misses      11048     3297     -7751     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant